package cn.itcast.oriented.Class

import scala.beans.BeanProperty

/**
  * @Package cn.itcast.oriented
  * @author KTL
  * @date 2021/5/22 0022 10:01
  * @version V1.0
  * @Copyright © 2015-04-29  One for each, and two for each
  */
class ClassDemo01 {
}

class Person{
  val id =100   //val修饰的变量，不可以被更改，相当只有getter方法
  var name ="jack"  //var修饰变量，能重新被赋值，相当有get/set方法
  private val age =18//private修饰表示私有，只能当前类或者伴生对象可以访问
  private[this] val pet="mouse"//对象私有，只有当前类可以用

@BeanProperty//会生成get/set方法和java代码兼容（原本scala是不推荐get/set的）
  var money:Int=_  //_表示占位符，后续需要复制

  def m1()={
    println("m1执行了")
  }
  def m2(): Unit ={
    println("m2执行了")
  }
}

//同一个文件中的同名的object叫做类的伴生对象
//伴生对象
object Person{
  def main(args: Array[String]): Unit = {
     val p =new Person
    println(p.id)
    //p.id=999 无法修改，因为采用的是val

    println(p.name)
    p.money=100
    println(p.money)

    println(p.getMoney)
    p.setMoney(200)
    println(p.getMoney)
  }
}